package com.jinsi.controller.tang;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.jinsi.constant.YltConstant;
import com.jinsi.pojo.Comment;
import com.jinsi.service.tang.CourseReviewService;
import com.jinsi.util.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 课程评论
 * @author 唐文博
 * @Date 2022-09-07
 */
@RestController
@RequestMapping("/courseReview")
@Slf4j
public class CourseReviewController {
    @Autowired
    private CourseReviewService courseReviewService;

    /**
     * 查看课程评论人数和次数
     * @return
     */
    @RequestMapping("/getReviewList")
    public R getProductReview(){
        int a = courseReviewService.getCourseReview();
        Map map = new HashMap();
        map.put("count",a);
        return R.ok(map);
    }

    /**
     * 查看今日课程评论人数和次数
     * @return
     */
    @RequestMapping("/getCourseToday")
    public R getCourseToday(){
        int a = courseReviewService.getCourseToday();
        Map map = new HashMap();
        map.put("cou",a);
        return R.ok(map);
    }

    /**
     * 查看评论列表的成员账号，昵称，所属商品，发言时间，发言内容
     * @param page
     * @param limit
     * @return
     */
    @RequestMapping("/getReview")
    public R getReview(Integer page,Integer limit){
        PageHelper.startPage(page,limit);
        List<Comment> list = courseReviewService.getReview();
        PageInfo<Comment> pageInfo = new PageInfo<>(list);
        return R.custom(YltConstant.LAYUI_CODE,
                YltConstant.LAYUI_MSG,
                pageInfo.getList(),
                pageInfo.getTotal());
    }

    /**
     * 查看正常评论列表的成员账号及信息（已通过）
     * @param page
     * @param limit
     * @param status
     * @return
     */
    @RequestMapping("/getReviewNormal")
    public R getReviewNormal(Integer page,Integer limit,Integer status){
        PageHelper.startPage(page,limit);
        List<Comment> list = courseReviewService.getReviewNormal(status);
        PageInfo<Comment> pageInfo = new PageInfo<>(list);
        return R.custom(YltConstant.LAYUI_CODE,
                YltConstant.LAYUI_MSG,
                pageInfo.getList(),
                pageInfo.getTotal());
    }

    /**
     * 修改成已拦截状态 //状态 1已通过 2已拦截 3已删除',
     * @param id
     * @param status
     * @return
     */
    @RequestMapping("/updateReviewBlocked")
    public R updateReviewBlocked(Integer id, Integer status) {
        try {
            log.info("修改课程评论列表操作: [开始], 根据评论id进行修改:{},评论状态码进行删除、通过、拦截等操作：{}",id,status);
            courseReviewService.updateReviewBlocked(id,status);
            log.info("修改课程评论列表操作: [结束] 结果：{}","成功");
            return R.ok();
        } catch (Exception e) {
            e.printStackTrace();
            log.error("修改课程评论列表操作: [失败]", e);
            return R.error();
        }
    }
}
